const express = require("express");
const app = express();

// 跨域
const cors = require("cors");

app.use(
  cors({
    // // 允许任何域名访问
    origin: "*",
    // // 允许任何请求头
    headers: "*",
    // // 允许任何方法
    methods: "*",
    // // 允许携带cookie
    credentials: true,
  })
);

// 处理post请求
app.use(express.urlencoded({ extended: false }));
app.use(express.json());

const { expressjwt } = require("express-jwt");
app.use(
  expressjwt({
    secret: "liuhailang",
    // 解密算法
    algorithms: ["HS256"],
    // 除了带api的接口，其他接口都需要验证token
  }).unless({ path: [/^\/api\//] })
);

// 引用router
const loginRoutes = require("./server/route/login");
const registerRoutes = require("./server/route/reg");
const passageRoutes = require("./server/route/passage");

app.use(loginRoutes);
app.use(registerRoutes);
app.use(passageRoutes);
// 添加一个路由中间件
app.use("/api/index", (req, res) => {
  // 直接返回 "hello api"
  res.send("hello api");
});

// 配置web静态资源目录
app.use(express.static("public"));

// 404异常处理中间件,跳转到web目录下的404.html
app.use((req, res) => {
  res.status(404).sendFile(__dirname + "/public/index.html");
});

// 导入错误处理中间件
const errHandler = require("./server/utils/errcode");
app.use(errHandler);

app.listen(4040, () => {
  console.log("Server is running at http://127.0.0.1:4040");
});
